<blockquote>
    <p>AntsConfig 配置四大模块</p>
    <footer>com.acxy.ants.core.config.AntsConfig</footer>
    <footer>主要通过子类来进行初始化<code>Constants[常量配置]</code> <code>Plugins[插件配置]</code> <code>Interceptors[拦截器配置]</code> <code>Handlers[链配置]</code>
    </footer>
</blockquote>
<h5>Constants 常量配置</h5>
<pre class="code brush:java">
    /**
     * 常用常量配置
     * @param me
     */
    @Override
    public void configConstant(Constants me) {
        //加载resource下面的配置文件, 可以加载多个例如：
        PropKit.use("jdbc.txt", "weixin.txt", "pay.txt");
        //是否开启调试
        me.setDebug(true);
        //设置404页面
        me.setError404Page("error/404.html");
        //设置500页面
        me.setError500Page("error/500.html");
        //设置视图模板，需要引入相应jar, 也可以自定义修改默认视图配置
        me.setViewType(ViewType.FREEMARKER);
        //me.setViewType(ViewType.FREEMARKER.setConfig(config));

        //设置后缀名, 需要配合设置资源一起使用
        me.setRegexSuffix(".do", "json");
        me.setResources("/static");
    }
</pre>
<h5 class="clear">Plugins 常用插件配置 <span
        class="fz13">集成4种数据源 <code>Druid</code> <code>HikariCp</code> <code>Dbcp</code> <code>C3p0</code></span></h5>
<pre class="code brush:java">
    /**
     * 常用插件配置
     * @param me
     */
    @Override
    public void configPlugin(Plugins me) {
        //添加数据源, 可以添加多个不同的数据源, 当数据源相同时, 需要设置名称
        String url = PropKit.getStr("url");
        String driverClassName = PropKit.getStr("driverClassName");
        String username = PropKit.getStr("username");
        String password = PropKit.getStr("password");
        me.add(new DruidPlugin(url, driverClassName, username, password));
        me.add(new DruidPlugin("db2", url, driverClassName, username, password));
        me.add(new HikariCpPlugin(url, driverClassName, username, password));
        me.add(new DbcpPlugin(url, driverClassName, username, password));
        me.add(new C3p0Plugin(url, driverClassName, username, password));

        //添加SqlMap插件支持, 当第二个参数为true，开启定时检查xml重新生成sql防止改变sql xml需要重启
        me.add(new SqlMapPlugin("com/acxy/test/mapper", true));

        //添加Ehcache 缓存支持
        me.add(new EhcachePlugin());

        //添加Cron4j 定时器支持
        Cron4jPlugin cron4j = new Cron4jPlugin();
        cron4j.add(new Task("test1", 1000, 1000) {
            @Override
            public void run() {
                System.out.println("这是一个定时器!");
            }
        });
        me.add(cron4j);
    }
</pre>
<h5 class="clear">Handler 请求链配置 <span class="fz13">内置默认 <code>ctx</code> 作为项目根路径</span></h5>
<pre class="code brush:java">
     /**
     * 请求链配置
     * @param me
     */
    @Override
    public void configHandler(Handlers me) {
        //项目通用路径配置
        Map&lt;String, String&gt; pathMap = new HashMap<>();
        pathMap.put("ctx", "");
        pathMap.put("JS_PATH", "/static/js");
        pathMap.put("IMG_PATH", "/static/images");
        pathMap.put("CSS_PATH", "/static/css");
        pathMap.put("SWF_PATH", "/static/swf");
        pathMap.put("UE_PATH", "/static/ueditor");
        me.add(new PathHandler(pathMap));
        //内置防止频繁刷新接口配置
        me.add(new LimitRefreshHandler("/api/code"));
    }
</pre>
<h5 class="clear">Interceptor 拦截器配置 <span class="fz13">可扩展</span></h5>
<pre class="code brush:java">
    /**
    * 拦截器配置, 可扩展
    * @param me
    */
    @Override
    public void configInterceptor(Interceptors me) {
        //自定义拦截器配置
        me.add(new CacheInterceptor());
    }
</pre>
<script type="text/javascript">
    $(function () {
        SyntaxHighlighter.highlight();
        $(".toolbar").remove();
    });
</script>